﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.DataVisualization.Charting;
using SIGERP_Entidades;
using SIGERP_Negocio;

namespace SIGERP_Presentacion
{
    public partial class frmRecepcionReclamoGrilla : Form
    {
        Departamento d;
        DataTable dt;
        List<Reclamo> reclamos;

        public frmRecepcionReclamoGrilla(Departamento departamento)
        {
            d = departamento;
            InitializeComponent();
            lblDepartamento.Text = d.descripcion + " - " + d.area.descripcion;
            cargarGrilla();
        }

        private void cargarGrilla()
        {
            dt = new DataTable();
            dt.Columns.Add("Nº", typeof(int));
            dt.Columns.Add("Tipo - SubTipo", typeof(string));
            dt.Columns.Add("Fecha de ingreso", typeof(string));
            dt.Columns.Add("Estado", typeof(string));
            dt.Columns.Add("Reiteraciones", typeof(int));


            reclamos = Reclamos.BuscarReclamosPorDepto(d);
            foreach (Reclamo r in reclamos)
            {
                dt.Rows.Add(r.id,r.subtiporeclamo,r.fecha_ingreso.ToShortDateString(),r.estadoreclamo, r.cant_reiteraciones);
            }
            grilla.DataSource = dt;
            grilla.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
        }

        private void filtrar(object sender, EventArgs e)
        {
            if(dtpDesde.Value==null)
            {
                MessageBox.Show("La fecha desde no puede estar vacía.");
                dtpDesde.Focus();
                return;
            }
            if (dtpHasta.Value == null)
            {
                MessageBox.Show("La fecha hasta no puede estar vacía.");
                dtpHasta.Focus();
                return;
            }

            dt.Clear();
            DateTime desde = (DateTime)dtpDesde.Value;
            DateTime hasta = (DateTime)dtpHasta.Value;

            foreach (Reclamo r in reclamos)
            {  
                if (r.fecha_ingreso.Date >= desde.Date && r.fecha_ingreso.Date <= hasta.Date)
                {
                    dt.Rows.Add(r.id, r.subtiporeclamo, r.fecha_ingreso.ToShortDateString(), r.estadoreclamo, r.cant_reiteraciones);
                }
            }
        }

        private void seleccionaReclamo(object sender, DataGridViewCellEventArgs e)
        {
            
            if (grilla.Rows[e.RowIndex].Cells[0] != null) 
            {
                int nroReclamo = Int32.Parse(grilla.Rows[e.RowIndex].Cells[0].Value.ToString());
                Reclamo r = Reclamos.GetOne(nroReclamo);
                frmRecepcionReclamo frr = new frmRecepcionReclamo(r);
                frr.StartPosition = FormStartPosition.CenterParent;
                frr.ShowDialog();
            }
            cargarGrilla();
        }

        private void toolStripAyuda_Click_1(object sender, EventArgs e)
        {
            Utilities.mostrarAyuda(this, (this.GetType().ToString() + ".htm").Replace("SIGERP_Presentacion.", ""));
        }
    }
}
